package com.ioftv.util;

import com.ioftv.entity.SysUser;

/**
 * 角色权限工具类
 */
public class RolePermissionUtil {
    
    /**
     * 角色常量
     */
    public static final String ROLE_ADMIN = "ADMIN";      // 管理员
    public static final String ROLE_MANAGER = "MANAGER";   // 项目经理
    public static final String ROLE_LABELER = "LABELER";   // 标注员
    public static final String ROLE_QC = "QC";            // 质检员
    
    /**
     * 判断用户是否为管理员
     * @param user 用户
     * @return 是否为管理员
     */
    public static boolean isAdmin(SysUser user) {
        return user != null && ROLE_ADMIN.equals(user.getRole());
    }
    
    /**
     * 判断角色是否为管理员
     * @param role 角色
     * @return 是否为管理员
     */
    public static boolean isAdmin(String role) {
        return role != null && ROLE_ADMIN.equals(role);
    }
    
    /**
     * 判断用户是否为项目经理
     * @param user 用户
     * @return 是否为项目经理
     */
    public static boolean isManager(SysUser user) {
        return user != null && ROLE_MANAGER.equals(user.getRole());
    }
    
    /**
     * 判断用户是否为标注员
     * @param user 用户
     * @return 是否为标注员
     */
    public static boolean isLabeler(SysUser user) {
        return user != null && ROLE_LABELER.equals(user.getRole());
    }
    
    /**
     * 判断用户是否为质检员
     * @param user 用户
     * @return 是否为质检员
     */
    public static boolean isQc(SysUser user) {
        return user != null && ROLE_QC.equals(user.getRole());
    }
    
    /**
     * 判断用户是否有权限访问所有数据
     * @param user 用户
     * @return 是否有权限访问所有数据
     */
    public static boolean canAccessAllData(SysUser user) {
        return user != null && ROLE_ADMIN.equals(user.getRole());
    }
}